package com.weds.custompage.entity.db;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * <p>
 * 用户表
 * </p>
 *
 * @author lhw
 * @since 2023-09-01
 */

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("public.sc_user")
@ApiModel(value = "ScUserDO对象", description = "用户表")
public class ScUserDO {

    @ApiModelProperty("主键序列")
    @TableId(value = "user_id", type = IdType.AUTO)
    private Integer userId;

    @ApiModelProperty("用户编号(工号)")
    @TableField("user_no")
    private String userNo;

    @ApiModelProperty("用户名称")
    @TableField("user_name")
    private String userName;

    @ApiModelProperty("用户类型： 4.学生  5.老师  6.职工")
    @TableField("user_type")
    private Short userType;

    @ApiModelProperty("所属组织")
    @TableField("dept_id")
    private Integer deptId;

    @ApiModelProperty("所属组织行政编号")
    @TableField("dept_no")
    private String deptNo;

    @ApiModelProperty("所属组织名称")
    @TableField("dept_name")
    private String deptName;

    @ApiModelProperty("手机")
    @TableField("phone_no")
    private String phoneNo;

    @ApiModelProperty("身份证")
    @TableField("user_identity")
    private String userIdentity;

    @ApiModelProperty("1.男  2.女")
    @TableField("user_sex")
    private Short userSex;

    @ApiModelProperty("指纹")
    @TableField("user_finger")
    private String userFinger;

    @ApiModelProperty("有无卡：0.无  1.有")
    @TableField("user_card")
    private Short userCard;

    @ApiModelProperty("有无档案照片：0.无  1.有")
    @TableField("user_photo")
    private Short userPhoto;

    @ApiModelProperty("有无人脸照片：0.无  1.有")
    @TableField("user_face")
    private Short userFace;

    @ApiModelProperty("学院id")
    @TableField("institute_id")
    private Integer instituteId;

    @ApiModelProperty("学院名称")
    @TableField("institute_name")
    private String instituteName;

    @ApiModelProperty("年级id")
    @TableField("grade_id")
    private Integer gradeId;

    @ApiModelProperty("年级名称")
    @TableField("grade_name")
    private String gradeName;

    @ApiModelProperty("专业id")
    @TableField("major_id")
    private Integer majorId;

    @ApiModelProperty("专业名称")
    @TableField("major_name")
    private String majorName;

    @ApiModelProperty("字典项：用户状态： 0.停用 1. 正常 2.删除")
    @TableField("user_state")
    private Short userState;

    @ApiModelProperty("备注")
    @TableField("remark")
    private String remark;

    @ApiModelProperty("排序")
    @TableField("show_order")
    private Integer showOrder;

    @ApiModelProperty("创建时间")
    @TableField("ct_date")
    private LocalDateTime ctDate;

    @ApiModelProperty("创建人")
    @TableField("ct_user_id")
    private Integer ctUserId;

    @ApiModelProperty("最后修改时间")
    @TableField("lt_date")
    private LocalDateTime ltDate;

    @ApiModelProperty("最后修改人")
    @TableField("lt_user_id")
    private Integer ltUserId;

    @ApiModelProperty("版本")
    @TableField("version")
    private String version;

    @ApiModelProperty("来源")
    @TableField("source_no")
    private String sourceNo;

    @ApiModelProperty("来源ID")
    @TableField("source_id")
    private Integer sourceId;

    @ApiModelProperty("班级id")
    @TableField("class_id")
    private Integer classId;

    @ApiModelProperty("班级名称")
    @TableField("class_name")
    private String className;

    @ApiModelProperty("系别id")
    @TableField("series_id")
    private Integer seriesId;

    @ApiModelProperty("系别名称")
    @TableField("series_name")
    private String seriesName;

    @ApiModelProperty("身份类型（主角色）【对应sc_role 的 role_no】")
    @TableField("main_role_no")
    private String mainRoleNo;

    @ApiModelProperty("人员标签数组，例如['leave','quit','retire','regular','unregular']")
    @TableField("user_label")
    private Object userLabel;
}
